home *** CD-ROM | disk | FTP | other *** search
/ EnigmA Amiga Run 1995 November / EnigmA AMIGA RUN 02 (1995)(G.R. Edizioni)(IT)[!][issue 1995-11][Skylink CD].iso / earcd / program / misc / butclass.lha / ButClass10 / ButClassTest.c < prev    next >
C/C++ Source or Header  |  1995-09-17  |  7KB  |  277 lines

  1. #include <proto/exec.h>
  2. #include <proto/intuition.h>
  3. #include <proto/bgui.h>
  4. #include <proto/keymap.h>
  5.  
  6. #include <libraries/bgui.h>
  7. #include <libraries/bgui_macros.h>
  8. #include <libraries/bgui_beta.h>
  9.  
  10. #include <clib/alib_protos.h>
  11.  
  12. #include <boopsi/ButClass.h>
  13.  
  14. #ifdef _DCC
  15. #include <lib/Misc.h>
  16. #endif
  17.  
  18. #include <stdio.h>
  19.  
  20. #define GD_TITLE        0
  21. #define GD_CLIPMODE     1
  22. #define GD_JUSTIFY      2
  23. #define GD_CLIPJUST     3
  24. #define GD_SETTABLE     4
  25. #define GD_STRING       5
  26. #define GD_PEN_SLIDER   6
  27. #define GD_BACK_SLIDER  7
  28.  
  29. #define GAD_CNT         8
  30.  
  31. /*
  32. **  Library
  33. **/
  34. struct Library *BGUIBase=NULL;
  35. struct Library *KeymapBase=NULL;
  36.  
  37. /*
  38. **  Screen data
  39. **/
  40. struct Screen   *Scr=NULL;
  41.  
  42. /*
  43. **  Object ptr
  44. **/
  45. Object          *WO_Test=NULL;
  46. struct Window   *TestWnd=NULL;
  47. Object          *TestGad[ GAD_CNT ];
  48.  
  49. /*
  50. **  ButClass data
  51. **/
  52. Class           *ButClass=NULL;
  53. Object          *But1=NULL;
  54. Object          *But2=NULL;
  55. Object          *Clipbut=NULL;
  56.  
  57. /*
  58. **  TAG for map.
  59. **/
  60. ULONG   String2But[] = { STRINGA_TextVal, BUT_Label, TAG_END };
  61. ULONG   Slider2ButPen[] = { SLIDER_Level,  BUT_LabelPen, TAG_END };
  62. ULONG   Slider2ButBack[] = { SLIDER_Level,  FRM_BackPen, TAG_END };
  63.  
  64.  
  65.  
  66.  
  67. int main( int argc, char **argv )
  68. {
  69. ULONG           Sig;
  70. BOOL            running=TRUE;
  71. ULONG           rc, t=0;
  72. ULONG           c1=0;
  73.  
  74.     /*
  75.     **  Open the bgui.library
  76.     **/
  77.     if( !( BGUIBase=OpenLibrary( "bgui.library", 39L ) ))
  78.     {
  79.         printf("Can't open bgui.library v39!\n");
  80.         return(30);
  81.     }
  82.  
  83.     /*
  84.     **  Open the keymap.library
  85.     **/
  86.     if( !(KeymapBase=OpenLibrary( "keymap.library", 0L ) ))
  87.     {
  88.         printf("Can't open keymap.library\n");
  89.         CloseLibrary( BGUIBase );
  90.         return(30);
  91.     }
  92.  
  93.     /*
  94.     **  Init. of the ButClass
  95.     **/
  96.     if( !(ButClass=InitButClass()) )
  97.     {
  98.         printf("InitButClass() failed!!\n");
  99.         CloseLibrary( BGUIBase );
  100.         return(30);
  101.     }
  102.  
  103.     /*
  104.     **  Locking screen (for have the number of color) (see bellow)
  105.     **/
  106.     if( !(Scr = LockPubScreen( "Workbench" ) ))
  107.     {
  108.         printf("Can't lock screen\n");
  109.         FreeButClass( ButClass );
  110.         CloseLibrary( BGUIBase );
  111.         CloseLibrary( KeymapBase );
  112.         return(30);
  113.     }
  114.  
  115.  
  116.     /*
  117.     **  Create window..
  118.     **/
  119.     WO_Test= WindowObject,
  120.             WINDOW_Title,           "ButClass test",
  121.             WINDOW_AutoAspect,      TRUE,
  122.             WINDOW_RMBTrap,         TRUE,
  123.             WINDOW_CloseOnEsc,      TRUE,
  124.             WINDOW_ScaleWidth,      20,
  125.             WINDOW_MasterGroup,
  126.  
  127.             VGroupObject, VOffset(4), HOffset(4), Spacing(4),
  128.  
  129.             /*
  130.             **  Title ( with Justification mode ;-).
  131.             **/
  132.             StartMember,
  133.                 TestGad[ GD_TITLE ] = ButObject( ButClass ),
  134.                             GA_ID,                  GD_TITLE+1,
  135.                             NeXTFrame,
  136.                             BUT_ClipText,           TRUE,
  137.                             BUT_Justify,            TRUE,
  138.                             BUT_Label,              BSEQ_J "ButClass" BSEQ_J " 1.0" BSEQ_J " (C) Doguet Emmanuel" BSEQ_J,
  139.                             BUT_LabelPen,           2,
  140.                             BUT_SelectedLabelPen,   2,
  141.                             FRM_BackFill,           FILL_RASTER,
  142.                     EndObject,
  143.             EndMember,
  144.  
  145.             /*
  146.             **  ClipText
  147.             **/
  148.             StartMember, VGroupObject, FrameTitle("ClipText"), NeXTFrame, VOffset(2), HOffset(4+4), BOffset(4), Spacing(4),
  149.                 StartMember,
  150.                     TestGad[ GD_CLIPMODE ] = ButClip( ButClass, "The button can be smaller than the text width !", GD_CLIPMODE ),
  151.                 EndMember,
  152.             EndObject, FixMinHeight, EndMember,
  153.  
  154.             /*
  155.             **  Justify
  156.             **/
  157.             StartMember, HGroupObject, FrameTitle("Justify"), NeXTFrame, VOffset(2), HOffset(4+4), BOffset(4), Spacing(4),
  158.                 StartMember,
  159.                     TestGad[ GD_JUSTIFY ] = ButJustify( ButClass, "_Contact me" BSEQ_J "at:" , GD_JUSTIFY ),
  160.                 EndMember,
  161.             EndObject, FixMinHeight, EndMember,
  162.  
  163.             /*
  164.             **  ClipText and Justify
  165.             **/
  166.             StartMember, HGroupObject, FrameTitle("ClipText + Justify"), NeXTFrame, VOffset(2), HOffset(4+4), BOffset(4), Spacing(4),
  167.                 StartMember,
  168.                     TestGad[ GD_CLIPJUST ] = ButClipJust( ButClass, BSEQ_J "manu@ramses.fdn.org" BSEQ_J "or" BSEQ_J "2:320/104.64" BSEQ_J, GD_CLIPJUST ),
  169.                 EndMember,
  170.             EndObject, FixMinHeight, EndMember,
  171.  
  172.             /*
  173.             **  Settable label, colors...
  174.             **/
  175.             StartMember, VGroupObject, FrameTitle("Label is settable..."), NeXTFrame, VOffset(2), HOffset(4+4), BOffset(4), Spacing(4),
  176.  
  177.                 StartMember,
  178.                     TestGad[ GD_SETTABLE ] = ButClip( ButClass, "Nothing", GD_SETTABLE ),
  179.                 EndMember,
  180.  
  181.                 StartMember,
  182.                     TestGad[ GD_STRING ] = String( NULL, "Nothing", 256, GD_STRING ),
  183.                 EndMember,
  184.  
  185.                 StartMember,
  186.                     TestGad[ GD_PEN_SLIDER ] = HorizSlider( "Pen:", 0, (1<<Scr->BitMap.Depth)-1, 1, GD_PEN_SLIDER ),
  187.                 EndMember,
  188.  
  189.                 StartMember,
  190.                     TestGad[ GD_BACK_SLIDER ] = HorizSlider( "Back:", 0, (1<<Scr->BitMap.Depth)-1, 0, GD_BACK_SLIDER ),
  191.                 EndMember,
  192.  
  193.             EndObject, FixMinHeight, EndMember,
  194.  
  195.  
  196.         EndObject,              // End of Main VGroup
  197.  
  198.         EndObject;              // End of MasterGroup
  199.  
  200.  
  201.     GadgetKey( WO_Test, TestGad[ GD_JUSTIFY ], "c" );
  202.  
  203.  
  204.     if( !WO_Test )
  205.         printf("Failed to create window..\n");
  206.     else
  207.     {
  208.  
  209.         // Map String contents to button
  210.         AddMap( TestGad[ GD_STRING ], TestGad[ GD_SETTABLE ], String2But );
  211.  
  212.         // Map sliders to button (color pen and background
  213.         AddMap( TestGad[ GD_PEN_SLIDER ], TestGad[ GD_SETTABLE ], Slider2ButPen );
  214.         AddMap( TestGad[ GD_BACK_SLIDER ], TestGad[ GD_SETTABLE ], Slider2ButBack );
  215.  
  216.         /*
  217.         **  Open window  and get it's Mask.
  218.         **/
  219.         TestWnd=WindowOpen( WO_Test );
  220.         
  221.         GetAttr( WINDOW_SigMask, WO_Test, &Sig );
  222.  
  223.         /*
  224.         **  Do until close window...
  225.         **/
  226.         if( TestWnd )
  227.  
  228.         do {
  229.  
  230.             Wait( Sig );
  231.  
  232.             while (( rc = HandleEvent( WO_Test )) != WMHI_NOMORE )
  233.             {
  234.                 switch ( rc ) {
  235.                         case    WMHI_CLOSEWINDOW:   running = FALSE;
  236.                                                     break;
  237.                 }
  238.             }
  239.  
  240.         }while ( running );
  241.  
  242.     }
  243.  
  244.  
  245.  
  246.     /*
  247.     **  Dispose window
  248.     **/
  249.     if( WO_Test)
  250.         DisposeObject( WO_Test );
  251.  
  252.     /*
  253.     **  Dispose ButClass
  254.     **/
  255.     if( ButClass )
  256.         FreeButClass( ButClass );
  257.  
  258.     /*
  259.     **  Unlock screen
  260.     **/
  261.     if( Scr )
  262.         UnlockPubScreen( NULL, Scr );
  263.  
  264.     CloseLibrary( BGUIBase );
  265.     CloseLibrary( KeymapBase );
  266.  
  267. }
  268.  
  269.  
  270. #ifdef _DCC
  271. int wbmain( struct WBStartup *w )
  272. {
  273.     OpenConsole("CON:0/100//100/ButClassTest output/AUTO");
  274.     return(main(0,0));
  275. }
  276. #endif
  277.